home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / php / pear / OLE / PPS / File.php next >
PHP Script  |  2003-12-12  |  3KB  |  115 lines

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4: */
  3. // +----------------------------------------------------------------------+
  4. // | PHP Version 4                                                        |
  5. // +----------------------------------------------------------------------+
  6. // | Copyright (c) 1997-2002 The PHP Group                                |
  7. // +----------------------------------------------------------------------+
  8. // | This source file is subject to version 2.02 of the PHP license,      |
  9. // | that is bundled with this package in the file LICENSE, and is        |
  10. // | available at through the world-wide-web at                           |
  11. // | http://www.php.net/license/2_02.txt.                                 |
  12. // | If you did not receive a copy of the PHP license and are unable to   |
  13. // | obtain it through the world-wide-web, please send a note to          |
  14. // | license@php.net so we can mail you a copy immediately.               |
  15. // +----------------------------------------------------------------------+
  16. // | Author: Xavier Noguer <xnoguer@php.net>                              |
  17. // | Based on OLE::Storage_Lite by Kawai, Takanori                        |
  18. // +----------------------------------------------------------------------+
  19. //
  20. // $Id: File.php,v 1.8 2003/12/12 21:10:10 xnoguer Exp $
  21.  
  22.  
  23. require_once ('OLE/PPS.php');
  24.  
  25. /**
  26. * Class for creating File PPS's for OLE containers
  27. *
  28. * @author   Xavier Noguer <xnoguer@php.net>
  29. * @category Structures
  30. * @package  OLE
  31. */
  32. class OLE_PPS_File extends OLE_PPS
  33. {
  34.     /**
  35.     * The temporary dir for storing the OLE file
  36.     * @var string
  37.     */
  38.     var $_tmp_dir;
  39.  
  40.     /**
  41.     * The constructor
  42.     *
  43.     * @access public
  44.     * @param string $name The name of the file (in Unicode)
  45.     * @see OLE::Asc2Ucs()
  46.     */
  47.     function OLE_PPS_File($name)
  48.     {
  49.         $this->_tmp_dir = '';
  50.         $this->OLE_PPS(
  51.             null, 
  52.             $name,
  53.             OLE_PPS_TYPE_FILE,
  54.             null,
  55.             null,
  56.             null,
  57.             null,
  58.             null,
  59.             '',
  60.             array());
  61.     }
  62.  
  63.     /**
  64.     * Sets the temp dir used for storing the OLE file
  65.     *
  66.     * @access public
  67.     * @param string $dir The dir to be used as temp dir
  68.     * @return true if given dir is valid, false otherwise
  69.     */
  70.     function setTempDir($dir)
  71.     {
  72.         if (is_dir($dir)) {
  73.             $this->_tmp_dir = $dir;
  74.             return true;
  75.         }
  76.         return false;
  77.     }
  78.  
  79.     /**
  80.     * Initialization method. Has to be called right after OLE_PPS_File().
  81.     *
  82.     * @access public
  83.     * @return mixed true on success. PEAR_Error on failure
  84.     */
  85.     function init()
  86.     {
  87.         $this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_File");
  88.         $fh = @fopen($this->_tmp_filename, "w+b");
  89.         if ($fh == false) {
  90.             return $this->raiseError("Can't create temporary file");
  91.         }
  92.         $this->_PPS_FILE = $fh;
  93.         if ($this->_PPS_FILE) {
  94.             fseek($this->_PPS_FILE, 0);
  95.         }
  96.     }
  97.     
  98.     /**
  99.     * Append data to PPS
  100.     *
  101.     * @access public
  102.     * @param string $data The data to append
  103.     */
  104.     function append($data)
  105.     {
  106.         if ($this->_PPS_FILE) {
  107.             fwrite($this->_PPS_FILE, $data);
  108.         }
  109.         else {
  110.             $this->_data .= $data;
  111.         }
  112.     }
  113. }
  114. ?>
  115.